package com.AdvancedDemos.LearnVariousAPI.系统类;

import java.io.IOException;

public class LearnRuntime {
    public static void main(String[] args) throws IOException, InterruptedException {
        /**
         * Runtime代表系统所在的运行环境,它是一个单例类(仅仅类中有一个实例类外无法实例化)
         */

        Runtime runtime = Runtime.getRuntime();//调用静态函数getRuntime()获取唯一实例

//        runtime.exit(0);//终止当前运行的虚拟机,形参用作状态代码,按照惯例,非零表示异常终止

        int i = runtime.availableProcessors();//获取虚拟机能够使用的处理器数,与任务管理中一致
        System.out.println("逻辑处理器个数:" + i);

        long l = runtime.totalMemory();//获取Java虚拟机占用的内存总量,单位是字节
        System.out.println("Java虚拟机占用内存:" + l / 1024.0 / 1024.0 + "MB");

        long l1 = runtime.freeMemory();//获取Java虚拟机中可用的内存量,单位是字节
        System.out.println("Java虚拟机可用内存:" + l1 / 1024.0 / 1024.0 + "MB");

        Process p = runtime.exec("E:\\360Downloads\\Software\\Tencent\\QQ\\Bin\\QQ.exe");//执行某个可执行程序
//        runtime.exec("QQ.exe");//如果配到环境变量中就可以直接启动
        Thread.sleep(5000);//让程序暂停5000毫秒(5秒)后继续往下走
        System.out.println("com.AdvancedDemos.FileAndIO.HelloWorld!");
        p.destroy();//关闭进程

    }
}
